package com.uzai.console.service.user;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.common.SelectVo;
import com.uzai.console.dto.user.marketingtag.*;
import com.uzai.console.entity.MarketingTag;
import com.uzai.console.vo.user.marketingtag.MarketingTagReplyVo;
import com.uzai.console.vo.user.marketingtag.MarketingTagVo;

import java.util.List;

/***
 * @author liuqi
 * @date 2021年09月01日 19:26
 */
public interface MarketingTagService {

    /**
     * 分页查询会员标签列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param marketingTagQuery
     * @return null
     */
    Page<MarketingTagVo> findMarketingTagByPage(MarketingTagQuery marketingTagQuery);

    /**
     * 查询会员标签详情
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param marketingTagIdDto
     * @return null
     */
    MarketingTagVo findMarketingTagById(MarketingTagIdDto marketingTagIdDto);

    /**
     * 添加会员标签
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param marketingTagDto
     * @return null
     */
    void addMarketingTag(MarketingTagDto marketingTagDto);

    /**
     * 删除会员标签
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param marketingTagIdDto
     * @return null
     */
    void deleteMarketingTag(MarketingTagIdDto marketingTagIdDto);

    /**
     * 修改会员标签
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param marketingTagInfoDto
     * @return null
     */
    void updateMarketingTag(MarketingTagDto marketingTagInfoDto);

    /**
     * 查询所有会员标签列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param marketingTagQuery
     * @return null
     */
    List<MarketingTagVo> findMarketingTagByList(MarketingTagQuery marketingTagQuery);


    /**
     * 查询所有会员标签类型列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param
     * @return null
     */
    List<SelectVo> findMarketingTypeListSelect();


    /**
     * 查询会员标签营销奖励回复语
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param
     * @return null
     */
    MarketingTagReplyVo findMarketingTagReply(Long merId);

    /**
     * 修改会员标签营销奖励回复语
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param
     * @return null
     */
    void updateMarketingTagReply(MarketingTagReplyDto marketingTagReplyDto);

    /**
     * 复制会员标签
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param
     * @return null
     */
    void copyMarketingTag(MarketingTagCopyDto marketingTagCopyDto);

}
